#include "stm32f10x.h"                  // Device header
#include "PWM.h"
#include "main.h"

void Motor_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);	//APB2外设时钟控制
	
	GPIO_InitTypeDef GPIO_InitStructure;			//定义结构体变量
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	
	PWM_Init();
}

void Right_B_Go(void)								//右后轮行进
{
	GPIO_SetBits(GPIOA,GPIO_Pin_4);							//4高5低
	GPIO_ResetBits(GPIOA,GPIO_Pin_5);
}

void Right_B_Back(void)								//右后轮倒退
{
	GPIO_ResetBits(GPIOA,GPIO_Pin_4);						//5高4低
	GPIO_SetBits(GPIOA,GPIO_Pin_5);
}

void Left_B_Go(void)								//左后 行进
{
	GPIO_SetBits(GPIOA,GPIO_Pin_6);							//6高7低
	GPIO_ResetBits(GPIOA,GPIO_Pin_7);
}

void Left_B_Back(void)								//左后 倒退
{
	GPIO_ResetBits(GPIOA,GPIO_Pin_6);						//7高6低
	GPIO_SetBits(GPIOA,GPIO_Pin_7);
}

void Right_F_Go(void)								//右前 行进
{
	GPIO_SetBits(GPIOA,GPIO_Pin_8);							//8高9低
	GPIO_ResetBits(GPIOA,GPIO_Pin_9);
}

void Right_F_Back(void)								//右前 倒退
{
	GPIO_ResetBits(GPIOA,GPIO_Pin_8);						//9高8低
	GPIO_SetBits(GPIOA,GPIO_Pin_9);
}

void Left_F_Go(void)								//左前 行进
{
	GPIO_SetBits(GPIOA,GPIO_Pin_10);							//10高11低
	GPIO_ResetBits(GPIOA,GPIO_Pin_11);
}

void Left_F_Back(void)								//左前 后退
{
	GPIO_ResetBits(GPIOA,GPIO_Pin_10);							//11高10低
	GPIO_SetBits(GPIOA,GPIO_Pin_11);
}

void Right_B_Stop(void)								
{
	GPIO_SetBits(GPIOA,GPIO_Pin_4);							
	GPIO_SetBits(GPIOA,GPIO_Pin_5);
}

void Left_B_Stop(void)								
{
	GPIO_SetBits(GPIOA,GPIO_Pin_6);							
	GPIO_SetBits(GPIOA,GPIO_Pin_7);
}

void Right_F_Stop(void)								
{
	GPIO_SetBits(GPIOA,GPIO_Pin_8);							
	GPIO_SetBits(GPIOA,GPIO_Pin_9);
}

void Left_F_Stop(void)								
{
	GPIO_SetBits(GPIOA,GPIO_Pin_10);							
	GPIO_SetBits(GPIOA,GPIO_Pin_11);
}
